/*
 * @lc app=leetcode.cn id=6 lang=java
 *
 * [6] Z 字形变换
 */

// @lc code=start
class Solution {
    public String convert(String s, int numRows) {
        int n=s.length(),r=numRows;
         if(r==1||r>=n){//特殊情况处理
             return s;
         }
         StringBuffer[] mat=new StringBuffer[r];
         //初始化mat
         for(int i=0;i<r;i++){
             mat[i]=new StringBuffer();
         }
         for(int i=0,x=0,t=2*r-2;i<n;i++){
            mat[x].append(s.charAt(i));
             if(i%t<r-1){//在某向下的一列中 
                x++;
             }else{//在向右上的某列中
                x--;
             }
         }
         StringBuffer ans=new StringBuffer();
         for(StringBuffer sb:mat){
            ans.append(sb);
         }
         return ans.toString();

    }
}
// @lc code=end

